package demo2;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@Component
/*
    @PropertySource注解是Spring提供的
    用于告知Spring容器,当前类需要加载一个配置文件,使用配置文件中的内容做初始化
    其中该注解的参数就是用来指明配置文件的位置
 */
@PropertySource("classpath:config.properties")
//DAO 数据连接对象 data access object
public class UserDAO {
    //@Value注解是Spring框架提供的,用于为属性值进行初始化的
    //当Spring框架在创建当前UserDAO实例时会用@Value注解为属性赋值
    /*
        @Value注解有两种用法:
        1.直接将值指定,实际开发并不推荐这样的写法,因为不灵活
        2.引用外部的资源文件
     */

    //@Value("jdbc:mysql://localhost:3306/tedu")//实际开发不这样写
    @Value("${spring.datasource.url}")
    private String url;
    //@Value("root")
    @Value("${spring.datasource.username}")
    private String username;
    //@Value("root")
    @Value("${spring.datasource.password}")
    private String password;

    @Override
    public String toString() {
        return "UserDAO{" +
                "url='" + url + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
